﻿#pragma once

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>


typedef  int  SLTDataType;

typedef struct SListNode
{
	SLTDataType date;
	struct SListNode* next;
}SLT;



//单链表的打印
void SLTPrint(SLT* phead);

//单链表的尾插
void SLTPushBack(SLT** pphead, SLTDataType x);
//单链表的头插
void SLTPushFront(SLT** pphead, SLTDataType x);
//单链表的尾删
void SLTPopBack(SLT** pphead);
//单链表的头删
void SLTPopFront(SLT** pphead);
//查找
SLT* SLTFind(SLT* phead, SLTDataType x);
//在指定位置之前插⼊数据
void SLTInsert(SLT** pphead, SLT* pos, SLTDataType x);
//在指定位置之后插⼊数据
void SLTInsertAfter(SLT* pos, SLTDataType x);
//删除pos节点
void SLTErase(SLT** pphead, SLT* pos);
//删除pos之后的节点
void SLTEraseAfter(SLT* pos);
//销毁链表
void SListDesTroy(SLT** pphead);